home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1271 / display.bas next >
BASIC Source File  |  1997-03-14  |  2KB  |  73 lines

  1. ' DISPLAY.BAS
  2.  
  3. Option Explicit
  4. Dim ScreenBuffer(0 To 23) As String * 80
  5. Dim CurrentRow As Integer
  6. Dim CurrentCol As Integer
  7.  
  8. Sub DisplayChar (F As Form, ByVal C As Integer)
  9.   Dim Row As Integer
  10.   Dim Col As Integer
  11.   C = &H7F And C
  12.   'process char
  13.   If C = 13 Then
  14.     'carriage control
  15.     CurrentCol = 0
  16.     'plus assumed line feed
  17.     If CurrentRow < 23 Then
  18.       CurrentRow = CurrentRow + 1
  19.       'print CR+LF
  20.       F.Print " "
  21.     Else
  22.       'scroll !
  23.       F.Cls
  24.       For Row = 0 To 22
  25.         'print row
  26.         ScreenBuffer(Row) = ScreenBuffer(Row + 1)
  27.         F.Print ScreenBuffer(Row)
  28.       Next Row
  29.       'clear bottom row
  30.       ScreenBuffer(23) = Space$(80)
  31.     End If
  32.   ElseIf C = 10 Then
  33.     'throw away line feeds
  34.   Else
  35.     'not CR or LF
  36.     CurrentCol = CurrentCol + 1
  37.     If CurrentCol > 79 Then
  38.       'throw away !
  39.       Exit Sub
  40.     Else
  41.       'save in screen buffer & display
  42.       Mid$(ScreenBuffer(CurrentRow), CurrentCol, 1) = Chr$(C)
  43.       F.Print Chr$(C);
  44.     End If
  45.   End If
  46. 'display caret
  47. Col = F.CurrentX
  48. F.Print "_";
  49. F.CurrentX = Col
  50. End Sub
  51.  
  52. Sub DisplayInit (F As Form)
  53. Dim Row As Integer
  54. CurrentCol = 0
  55. CurrentRow = 0
  56. For Row = 0 To 23
  57.   ScreenBuffer(Row) = Space$(80)
  58. Next Row
  59. F.FontTransparent = False
  60. F.Cls
  61. End Sub
  62.  
  63. Sub DisplayLine (F As Form, Text As String)
  64.   Dim i As Integer
  65.   Dim Length As Integer
  66.   Length = Len(Text)
  67.   For i = 1 To Length
  68.     Call DisplayChar(F, Asc(Mid$(Text, i, 1)))
  69.   Next i
  70.   Call DisplayChar(F, 13)
  71. End Sub
  72.  
  73.